/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Clases;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author PaBLo
 */
@Entity
@Table(name = "catedraticocurso")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Catedraticocurso.findAll", query = "SELECT c FROM Catedraticocurso c"),
    @NamedQuery(name = "Catedraticocurso.findByIdCatedraticoCurso", query = "SELECT c FROM Catedraticocurso c WHERE c.idCatedraticoCurso = :idCatedraticoCurso")})
public class Catedraticocurso implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idCatedraticoCurso")
    private Short idCatedraticoCurso;
    @JoinColumn(name = "idCicloCurso", referencedColumnName = "idCicloCurso")
    @ManyToOne(optional = false)
    private Ciclocurso idCicloCurso;
    @JoinColumn(name = "idCurso", referencedColumnName = "idCurso")
    @ManyToOne(optional = false)
    private Curso idCurso;
    @JoinColumn(name = "idCatedratico", referencedColumnName = "idCatedratico")
    @ManyToOne(optional = false)
    private Catedratico idCatedratico;
    @JoinColumn(name = "idGradoSeccionCiclo", referencedColumnName = "idGradoSeccionCiclo")
    @ManyToOne(optional = false)
    private Gradoseccionciclo idGradoSeccionCiclo;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "idCatedraticoCurso")
    private Collection<Cursounidad> cursounidadCollection;

    public Catedraticocurso() {
    }

    public Catedraticocurso(Short idCatedraticoCurso) {
        this.idCatedraticoCurso = idCatedraticoCurso;
    }

    public Short getIdCatedraticoCurso() {
        return idCatedraticoCurso;
    }

    public void setIdCatedraticoCurso(Short idCatedraticoCurso) {
        this.idCatedraticoCurso = idCatedraticoCurso;
    }

    public Ciclocurso getIdCicloCurso() {
        return idCicloCurso;
    }

    public void setIdCicloCurso(Ciclocurso idCicloCurso) {
        this.idCicloCurso = idCicloCurso;
    }

    public Curso getIdCurso() {
        return idCurso;
    }

    public void setIdCurso(Curso idCurso) {
        this.idCurso = idCurso;
    }

    public Catedratico getIdCatedratico() {
        return idCatedratico;
    }

    public void setIdCatedratico(Catedratico idCatedratico) {
        this.idCatedratico = idCatedratico;
    }

    public Gradoseccionciclo getIdGradoSeccionCiclo() {
        return idGradoSeccionCiclo;
    }

    public void setIdGradoSeccionCiclo(Gradoseccionciclo idGradoSeccionCiclo) {
        this.idGradoSeccionCiclo = idGradoSeccionCiclo;
    }

    @XmlTransient
    public Collection<Cursounidad> getCursounidadCollection() {
        return cursounidadCollection;
    }

    public void setCursounidadCollection(Collection<Cursounidad> cursounidadCollection) {
        this.cursounidadCollection = cursounidadCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCatedraticoCurso != null ? idCatedraticoCurso.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Catedraticocurso)) {
            return false;
        }
        Catedraticocurso other = (Catedraticocurso) object;
        if ((this.idCatedraticoCurso == null && other.idCatedraticoCurso != null) || (this.idCatedraticoCurso != null && !this.idCatedraticoCurso.equals(other.idCatedraticoCurso))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Clases.Catedraticocurso[ idCatedraticoCurso=" + idCatedraticoCurso + " ]";
    }
    
}
